/*
Usar los eventos ONFOCUS y ONBLUR para validar
Usar estilos para darle forma a los mensajes de error.
 */

function validateLogin() {
	var userNameRegex = /\W/;
	var userName = document.getElementById("userName");
	var errorLayer = document.getElementById("errorLoginMessage");

	if (userName.value.length < 4 || userName.value.length > 8) {
		changeClassName("errorLoginMessage", "error errorMessage");
		userName.className = "error";
		errorLayer.innerHTML = "Debe escribir un nombre de usuario mayor de 8 letras y menor de 12.";
		return false;
	}

	if (userNameRegex.test(userName.value)) {
		changeClassName("errorLoginMessage", "error errorMessage");
		userName.className = "error";
		errorLayer.innerHTML = "S&oacute;lo se permiten letras, n&uacute;meros y guiones bajos.";
		return false;
	}

	var password = document.getElementById("password");
	if (password) {
		password.value = CryptoJS.SHA512(password.value);
	} else {
		return false;
	}
}

function validateRegister() {
	return userNameValidation();

	var password = document.getElementById("passwordRegistro");
	if (password) {
		password.value = CryptoJS.SHA512(password.value);
	} else {
		return false;
	}
	
	var repitaPassword = document.getElementById("repitaPasswordRegistro");
	if (repitaPassword) {
		repitaPassword.value = CryptoJS.SHA512(repitaPassword.value);
	} else {
		return false;
	}
}

function userNameValidation() {
	var nameControl = document.getElementById("alias");
	if (nameControl) {
		var value = nameControl.value;

		if (!value || value.length > 8 || value.length < 4) {
			var error = document.getElementById("aliasError");
			error.className = "error";
			error.innerHTML = "El nombre del usuario debe ser mayor de 4 y menor de 8 caracteres";
			return false;
		}

		$("#opRegister").val("validateUserName");

		var postParam = $('#userRegister').serialize();

		$
				.ajax({
					url : "Servicios/ServicioUsuario.php",
					type : "POST",
					data : postParam,
					dataType : "json"
				})
				.done(function(data, textStatus, jqXHR) {
					if (data.estado == 0) {
						$("#opRegister").val("insertUser");
						var postParam = $('#userRegister').serialize();
						document.getElementById("userRegister").submit();
					} else if (data.estado == 500) {
						SesionCaducada(data.mensaje);
					} else {
						var error = document.getElementById("aliasError");
						error.className = "error";
						error.innerHTML = data.mensaje;
					}
				})
				.fail(
						function(jqXHR, textStatus, errorThrown) {
							var error = document.getElementById("aliasError");
							error.className = "error";
							error.innerHTML = "El usuario seleccionado ya existe en la base de datos.";
						});
		return false;
	} else {
		var error = document.getElementById("aliasError");
		error.className = "error";
		error.innerHTML = "El nombre del usuario no debe ser vacio.";
		return false;
	}
}

function lastNameValidation() {
	var nameControl = document.getElementById("userLastName");
	if (nameControl) {
		var value = nameControl.value;
		if (!value || value.length < 10) {
			return "- El apellido del usuario debe ser mayor de 20 caracteres.\r\n";
		}
	} else {
		return "- El apelllido del usuario no debe ser vacio.\r\n";
	}
}

function showRegisterWindow() {
	showBlockLayer();
	changeClassName("register", "register");
}

function hideRegisterWindow() {
	hideBlockLayer();
	changeClassName("register", "hidden");
}

function showBlockLayer() {
	changeClassName("blockLayer", "blockLayer");
}

function hideBlockLayer() {
	changeClassName("blockLayer", "hidden");
}

function changeClassName(objectId, newClassName) {
	if (newClassName) {
		var object = document.getElementById(objectId);
		if (object) {
			object.className = newClassName;
		}
	}
}
